package com.supermarket.manage.provider.api.ucenter;

import com.supermarket.manage.common.dto.ucenter.request.AddRoleParams;
import com.supermarket.manage.common.dto.ucenter.request.RoleAddPermissionParams;
import com.supermarket.manage.common.dto.ucenter.request.RoleUpdateParams;
import com.supermarket.manage.common.pojo.Role;

import java.util.List;

/**
 * @author Faxon
 * @version 1.0
 * @date 2020-02-29 18:47
 **/
public interface RoleManageService {

    /**
     * 获取基本角色列表（管理员与售货员）
     *
     * @return
     */
    List<Role> getBaseRoleList();

    /**
     * 根据buyerId查询角色列表
     *
     * @param buyerId
     * @return
     */
    List<Role> getRoleListByBuyerId(String buyerId);

    /**
     * 删除角色
     *
     * @param roleId
     * @return
     */
    Boolean deleteRoleById(Long roleId);

    /**
     * 获取角色信息
     *
     * @param roleId
     * @return
     */
    Role getRoleById(Long roleId);

    /**
     * 修改角色
     *
     * @param params
     * @return
     */
    Boolean updateRoleById(RoleUpdateParams params);

    /**
     * 根据buyerId获取角色数量
     *
     * @param buyerId
     * @return
     */
    Integer getRoleCountByBuyerId(String buyerId);

    /**
     * 添加角色
     *
     * @param params
     * @return
     */
    Boolean addRole(AddRoleParams params);

    /**
     * 为角色赋予权限
     *
     * @param roleAddPermissionParams
     * @return
     */
    Boolean addPermissionToRole(RoleAddPermissionParams roleAddPermissionParams);

    /**
     * 查看角色使用数量
     *
     * @param roleId
     * @return
     */
    Integer getUsingCountByRoleId(Long roleId);
}
